package Q16_04_Tic_Tac_Win;
import CtCILibrary.AssortedMethods;
public class QuestionC {
public static boolean hasWinner(Piece p1, Piece p2, Piece p3) {
if (p1 == Piece.Empty) {
return false;
}
return p1 == p2 && p2 == p3;
}
public static Piece hasWon(Piece[][] board) {
for (int i = 0; i < board.length; i++) {
/* Check Rows */
if (hasWinner(board[i][0], board[i][1], board[i][2])) {
return board[i][0];
}
/* Check Columns */
if (hasWinner(board[0][i], board[1][i], board[2][i])) {
return board[0][i];
}
}
/* Check Diagonal */
if (hasWinner(board[0][0], board[1][1], board[2][2])) {
return board[0][0];
}
if (hasWinner(board[0][2], board[1][1], board[2][0])) {
return board[0][2];
}
return Piece.Empty;
}
public static void main(String[] args) {
int N = 3;
int[][] board_t = AssortedMethods.randomMatrix(N, N, 0, 2);
Piece[][] board = new Piece[N][N];
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
int x = board_t[i][j];
board[i][j] = Tester.convertIntToPiece(x);
}
}
Piece p1 = hasWon(board);
System.out.println(p1);
AssortedMethods.printMatrix(board_t);
}
}